package gz.metro.datasync.entity.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;


import java.util.*;

/**
 * @author Feily
 * @功能描述 用户表单类
 * @创建时间 2018-03-29
 */
@ApiModel(value = "UserDataForm",description = "用户")
public class UserDataForm extends FormBase {

	/**
	 * 用户ID
	 */
	@ApiModelProperty("用户ID")
	private String userId;
	/**
	 * 源用户ID
	 */
	@ApiModelProperty("源用户ID")
	private String sourceUserId;
	/**
	 * 数据源类型：hr-人力系统，web-网站，import-导入，interface-接口
	 */
	@ApiModelProperty("数据源类型：hr-人力系统，web-网站，import-导入，interface-接口")
	private String sourceType;
	/**
	 * 组织类别：inside-内部，outside-外部，virtule-虚拟
	 */
	@ApiModelProperty("组织类别：inside-内部，outside-外部，virtule-虚拟")
	private String userCategory;
	/**
	 * 用户类型
	 */
	@ApiModelProperty("用户类型")
	private String userType;
	/**
	 * 用户姓名
	 */
	@ApiModelProperty("用户姓名")
	private String userName;
	/**
	 * 用户姓名拼音
	 */
	@ApiModelProperty("用户姓名拼音")
	private String pinyinFull;
	/**
	 * 用户姓名拼音首字母
	 */
	@ApiModelProperty("用户姓名拼音首字母")
	private String pinyinInitial;
	/**
	 * 用户账号
	 */
	@ApiModelProperty("用户账号")
	private String accountName;
	/**
	 * 用户工号
	 */
	@ApiModelProperty("用户工号")
	private String jobNumber;
	/**
	 * 身份证ID
	 */
	@ApiModelProperty("身份证ID")
	private String identityId;
	/**
	 * 用户密码
	 */
	@ApiModelProperty("用户密码")
	private String password;
	/**
	 * 职位
	 */
	@ApiModelProperty("职位")
	private String positions;
	/**
	 * 职位类型：合同约定、工人系列、管理系列
	 */
	@ApiModelProperty("职位类型：合同约定、工人系列、管理系列")
	private String positionType;
	/**
	 * 工作级别：工人、业务主办
	 */
	@ApiModelProperty("工作级别：工人、业务主办")
	private String jobLevel;
	/**
	 * 电子邮箱
	 */
	@ApiModelProperty("电子邮箱")
	private String email;
	/**
	 * 手机号码
	 */
	@ApiModelProperty("手机号码")
	private String mobile;
	/**
	 * 座机号码
	 */
	@ApiModelProperty("座机号码")
	private String telephone;
	/**
	 * 性别
	 */
	@ApiModelProperty("性别")
	private String sex;
	/**
	 * 生日
	 */
	@ApiModelProperty("生日")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	private Date birthday;
	/**
	 * 国家
	 */
	@ApiModelProperty("国家")
	private String nation;
	/**
	 * 家乡
	 */
	@ApiModelProperty("家乡")
	private String hometown;
	/**
	 * 政治面貌
	 */
	@ApiModelProperty("政治面貌")
	private String politics;
	/**
	 * 毕业学校
	 */
	@ApiModelProperty("毕业学校")
	private String school;
	/**
	 * 毕业专业
	 */
	@ApiModelProperty("毕业专业")
	private String vocational;
	/**
	 * 入司时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@ApiModelProperty("入司时间")
	private Date joinDate;
	/**
	 * 排序
	 */
	@ApiModelProperty("排序")
	private Integer orderNum;
	/**
	 * 状态：disabled-禁用，enabled-启用
	 */
	@ApiModelProperty("状态：disabled-禁用，enabled-启用")
	private String status;
	/**
	 * 是否删除
	 */
	@ApiModelProperty("是否删除")
	private Boolean isDelete;
	/**
	 * 备注
	 */
	@ApiModelProperty("备注")
	private String remark;
	/**
	 * 创建时间
	 */
	@ApiModelProperty("创建时间")
	private Date createTime;
	/**
	 * 创建用户ID
	 */
	@ApiModelProperty("创建用户ID")
	private String createUserId;
	/**
	 * 修改时间
	 */
	@ApiModelProperty("修改时间")
	private Date updateTime;
	/**
	 * 修改用户ID
	 */
	@ApiModelProperty("修改用户ID")
	private String updateUserId;
	/**
	 * 扩展字段1
	 */
	@ApiModelProperty("扩展字段1")
	private String column1;
	/**
	 * 扩展字段2
	 */
	@ApiModelProperty("扩展字段2")
	private String column2;
	/**
	 * 扩展字段3
	 */
	@ApiModelProperty("扩展字段3")
	private String column3;
	/**
	 * 扩展字段4
	 */
	@ApiModelProperty("扩展字段4")
	private String column4;
	/**
	 * 扩展字段5
	 */
	@ApiModelProperty("扩展字段5")
	private String column5;


	/**
	 * 获取用户ID
	 * @return 用户ID
	 */
	public String getUserId() {
		return userId;
	}
	
	/**
	 * 设置用户ID
	 * @param userId 用户ID
	 */
	public void setUserId(String userId) {
		this.userId = userId;
	}

	/**
	 * 获取源用户ID
	 * @return 源用户ID
	 */
	public String getSourceUserId() {
		return sourceUserId;
	}
	
	/**
	 * 设置源用户ID
	 * @param sourceUserId 源用户ID
	 */
	public void setSourceUserId(String sourceUserId) {
		this.sourceUserId = sourceUserId;
	}

	public String getSourceType() {
		return sourceType;
	}

	public void setSourceType(String sourceType) {
		this.sourceType = sourceType;
	}

	public String getUserCategory() {
		return userCategory;
	}

	public void setUserCategory(String userCategory) {
		this.userCategory = userCategory;
	}

	/**
	 * 获取用户类型
	 * @return 用户类型
	 */
	public String getUserType() {
		return userType;
	}
	
	/**
	 * 设置用户类型
	 * @param userType 用户类型
	 */
	public void setUserType(String userType) {
		this.userType = userType;
	}

	/**
	 * 获取用户姓名
	 * @return 用户姓名
	 */
	public String getUserName() {
		return userName;
	}
	
	/**
	 * 设置用户姓名
	 * @param userName 用户姓名
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

	/**
	 * 获取用户姓名拼音
	 * @return 用户姓名拼音
	 */
	public String getPinyinFull() {
		return pinyinFull;
	}
	
	/**
	 * 设置用户姓名拼音
	 * @param pinyinFull 用户姓名拼音
	 */
	public void setPinyinFull(String pinyinFull) {
		this.pinyinFull = pinyinFull;
	}

	/**
	 * 获取用户姓名拼音首字母
	 * @return 用户姓名拼音首字母
	 */
	public String getPinyinInitial() {
		return pinyinInitial;
	}
	
	/**
	 * 设置用户姓名拼音首字母
	 * @param pinyinInitial 用户姓名拼音首字母
	 */
	public void setPinyinInitial(String pinyinInitial) {
		this.pinyinInitial = pinyinInitial;
	}

	/**
	 * 获取用户账号
	 * @return 用户账号
	 */
	public String getAccountName() {
		return accountName;
	}
	
	/**
	 * 设置用户账号
	 * @param accountName 用户账号
	 */
	public void setAccountName(String accountName) {
		this.accountName = accountName;
	}

	/**
	 * 获取用户工号
	 * @return 用户工号
	 */
	public String getJobNumber() {
		return jobNumber;
	}
	
	/**
	 * 设置用户工号
	 * @param jobNumber 用户工号
	 */
	public void setJobNumber(String jobNumber) {
		this.jobNumber = jobNumber;
	}

	/**
	 * 获取身份证ID
	 * @return 身份证ID
	 */
	public String getIdentityId() {
		return identityId;
	}
	
	/**
	 * 设置身份证ID
	 * @param identityId 身份证ID
	 */
	public void setIdentityId(String identityId) {
		this.identityId = identityId;
	}

	/**
	 * 获取用户密码
	 * @return 用户密码
	 */
	public String getPassword() {
		return password;
	}
	
	/**
	 * 设置用户密码
	 * @param password 用户密码
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * 获取职位
	 * @return 职位
	 */
	public String getPositions() {
		return positions;
	}
	
	/**
	 * 设置职位
	 * @param positions 职位
	 */
	public void setPositions(String positions) {
		this.positions = positions;
	}

	/**
	 * 获取职位类型：合同约定、工人系列、管理系列
	 * @return 职位类型：合同约定、工人系列、管理系列
	 */
	public String getPositionType() {
		return positionType;
	}
	
	/**
	 * 设置职位类型：合同约定、工人系列、管理系列
	 * @param positionType 职位类型：合同约定、工人系列、管理系列
	 */
	public void setPositionType(String positionType) {
		this.positionType = positionType;
	}

	/**
	 * 获取工作级别：工人、业务主办
	 * @return 工作级别：工人、业务主办
	 */
	public String getJobLevel() {
		return jobLevel;
	}
	
	/**
	 * 设置工作级别：工人、业务主办
	 * @param jobLevel 工作级别：工人、业务主办
	 */
	public void setJobLevel(String jobLevel) {
		this.jobLevel = jobLevel;
	}

	/**
	 * 获取电子邮箱
	 * @return 电子邮箱
	 */
	public String getEmail() {
		return email;
	}
	
	/**
	 * 设置电子邮箱
	 * @param email 电子邮箱
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * 获取手机号码
	 * @return 手机号码
	 */
	public String getMobile() {
		return mobile;
	}
	
	/**
	 * 设置手机号码
	 * @param mobile 手机号码
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	/**
	 * 获取座机号码
	 * @return 座机号码
	 */
	public String getTelephone() {
		return telephone;
	}
	
	/**
	 * 设置座机号码
	 * @param telephone 座机号码
	 */
	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	/**
	 * 获取性别
	 * @return 性别
	 */
	public String getSex() {
		return sex;
	}
	
	/**
	 * 设置性别
	 * @param sex 性别
	 */
	public void setSex(String sex) {
		this.sex = sex;
	}

	/**
	 * 获取生日
	 * @return 生日
	 */
	public Date getBirthday() {
		return birthday;
	}
	
	/**
	 * 设置生日
	 * @param birthday 生日
	 */
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	/**
	 * 获取国家
	 * @return 国家
	 */
	public String getNation() {
		return nation;
	}
	
	/**
	 * 设置国家
	 * @param nation 国家
	 */
	public void setNation(String nation) {
		this.nation = nation;
	}

	/**
	 * 获取家乡
	 * @return 家乡
	 */
	public String getHometown() {
		return hometown;
	}
	
	/**
	 * 设置家乡
	 * @param hometown 家乡
	 */
	public void setHometown(String hometown) {
		this.hometown = hometown;
	}

	/**
	 * 获取政治面貌
	 * @return 政治面貌
	 */
	public String getPolitics() {
		return politics;
	}
	
	/**
	 * 设置政治面貌
	 * @param politics 政治面貌
	 */
	public void setPolitics(String politics) {
		this.politics = politics;
	}

	/**
	 * 获取毕业学校
	 * @return 毕业学校
	 */
	public String getSchool() {
		return school;
	}
	
	/**
	 * 设置毕业学校
	 * @param school 毕业学校
	 */
	public void setSchool(String school) {
		this.school = school;
	}

	/**
	 * 获取毕业专业
	 * @return 毕业专业
	 */
	public String getVocational() {
		return vocational;
	}
	
	/**
	 * 设置毕业专业
	 * @param vocational 毕业专业
	 */
	public void setVocational(String vocational) {
		this.vocational = vocational;
	}

	/**
	 * 获取入司时间
	 * @return 入司时间
	 */
	public Date getJoinDate() {
		return joinDate;
	}
	
	/**
	 * 设置入司时间
	 * @param joinDate 入司时间
	 */
	public void setJoinDate(Date joinDate) {
		this.joinDate = joinDate;
	}

	/**
	 * 获取排序
	 * @return 排序
	 */
	public Integer getOrderNum() {
		return orderNum;
	}
	
	/**
	 * 设置排序
	 * @param orderNum 排序
	 */
	public void setOrderNum(Integer orderNum) {
		this.orderNum = orderNum;
	}

	/**
	 * 获取状态：disabled-禁用，enabled-启用
	 * @return 状态：disabled-禁用，enabled-启用
	 */
	public String getStatus() {
		return status;
	}
	
	/**
	 * 设置状态：disabled-禁用，enabled-启用
	 * @param status 状态：disabled-禁用，enabled-启用
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取是否删除
	 * @return 是否删除
	 */
	public Boolean getIsDelete() {
		return isDelete;
	}
	
	/**
	 * 设置是否删除
	 * @param isDelete 是否删除
	 */
	public void setIsDelete(Boolean isDelete) {
		this.isDelete = isDelete;
	}

	/**
	 * 获取备注
	 * @return 备注
	 */
	public String getRemark() {
		return remark;
	}
	
	/**
	 * 设置备注
	 * @param remark 备注
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 获取创建时间
	 * @return 创建时间
	 */
	public Date getCreateTime() {
		return createTime;
	}
	
	/**
	 * 设置创建时间
	 * @param createTime 创建时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/**
	 * 获取创建用户ID
	 * @return 创建用户ID
	 */
	public String getCreateUserId() {
		return createUserId;
	}
	
	/**
	 * 设置创建用户ID
	 * @param createUserId 创建用户ID
	 */
	public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}

	/**
	 * 获取修改时间
	 * @return 修改时间
	 */
	public Date getUpdateTime() {
		return updateTime;
	}
	
	/**
	 * 设置修改时间
	 * @param updateTime 修改时间
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	/**
	 * 获取修改用户ID
	 * @return 修改用户ID
	 */
	public String getUpdateUserId() {
		return updateUserId;
	}
	
	/**
	 * 设置修改用户ID
	 * @param updateUserId 修改用户ID
	 */
	public void setUpdateUserId(String updateUserId) {
		this.updateUserId = updateUserId;
	}

	/**
	 * 获取扩展字段1
	 * @return 扩展字段1
	 */
	public String getColumn1() {
		return column1;
	}
	
	/**
	 * 设置扩展字段1
	 * @param column1 扩展字段1
	 */
	public void setColumn1(String column1) {
		this.column1 = column1;
	}

	/**
	 * 获取扩展字段2
	 * @return 扩展字段2
	 */
	public String getColumn2() {
		return column2;
	}
	
	/**
	 * 设置扩展字段2
	 * @param column2 扩展字段2
	 */
	public void setColumn2(String column2) {
		this.column2 = column2;
	}

	/**
	 * 获取扩展字段3
	 * @return 扩展字段3
	 */
	public String getColumn3() {
		return column3;
	}
	
	/**
	 * 设置扩展字段3
	 * @param column3 扩展字段3
	 */
	public void setColumn3(String column3) {
		this.column3 = column3;
	}

	/**
	 * 获取扩展字段4
	 * @return 扩展字段4
	 */
	public String getColumn4() {
		return column4;
	}
	
	/**
	 * 设置扩展字段4
	 * @param column4 扩展字段4
	 */
	public void setColumn4(String column4) {
		this.column4 = column4;
	}

	/**
	 * 获取扩展字段5
	 * @return 扩展字段5
	 */
	public String getColumn5() {
		return column5;
	}
	
	/**
	 * 设置扩展字段5
	 * @param column5 扩展字段5
	 */
	public void setColumn5(String column5) {
		this.column5 = column5;
	}
	
	/****************************** 自定义属性开始  *****************************/
	
	/**
	 * 其他属性
	 */
	@ApiModelProperty("其他属性")
	protected Map<String, Object> property = new HashMap<String,Object>();
	
	/**
	 * 组织列表
	 */
	@ApiModelProperty("组织列表")
	protected List<UserOrgDataForm> orgs = new ArrayList<UserOrgDataForm>();
	
	/**
	 * 角色列表
	 */
	@ApiModelProperty("角色列表")
	protected List<UserRoleDataForm> roles = new ArrayList<UserRoleDataForm>();

	/**
	 * 组织角色列表
	 */
	@ApiModelProperty("组织角色列表")
	protected List<UserOrgRoleDataForm> orgRoles = new ArrayList<UserOrgRoleDataForm>();

	
	public Map<String, Object> getProperty() {
		return property;
	}

	public void setProperty(Map<String, Object> property) {
		this.property = property;
	}

	public List<UserOrgDataForm> getOrgs() {
		return orgs;
	}

	public void setOrgs(List<UserOrgDataForm> orgs) {
		this.orgs = orgs;
	}

	public List<UserRoleDataForm> getRoles() {
		return roles;
	}

	public void setRoles(List<UserRoleDataForm> roles) {
		this.roles = roles;
	}

	public List<UserOrgRoleDataForm> getOrgRoles() {
		return orgRoles;
	}

	public void setOrgRoles(List<UserOrgRoleDataForm> orgRoles) {
		this.orgRoles = orgRoles;
	}
	
	/****************************** 自定义属性结束  *****************************/
}
